package com.qf.common.neo4j.utils;

import com.qf.common.neo4j.node.InviteShip;
import com.qf.common.neo4j.node.UserNode;
import org.springframework.data.neo4j.core.Neo4jTemplate;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.Optional;

/**
 * 天--道--酬--勤
 *
 * @author LiangGaoQiang
 * @ClassName Neo4jUtils
 * @Date: 2025/5/27 11:07
 * @Description: 描述
 */
@Component
public class Neo4jUtils {

    @Resource
    private Neo4jTemplate neo4jTemplate;


    /**
     * 获取用户节点
     * @param userId 用户id
     * @return 用户节点
     */
    public UserNode getUserNode(Integer userId) {
        Optional<UserNode> userNode = neo4jTemplate.findById(userId, UserNode.class);
        return userNode.orElse(null);
    }


    /**
     * 添加邀请关系
     * @param pnode 邀请人
     * @param cnode 被邀请人
     */
    public void addNode(UserNode pnode, UserNode cnode) {
        InviteShip inviteShip = new InviteShip();
        inviteShip.setUserNode(cnode);
        inviteShip.getUserNode().setInviteShips(pnode.getInviteShips());
        neo4jTemplate.save(pnode);
    }


    /**
     * 添加用户节点
     * @param pnode 邀请人
     */
    public void addNode(UserNode pnode) {
        neo4jTemplate.save(pnode);
    }
}
